In a typical enterprise environment, users may employ a variety of client devices and client computing systems to use, share, and update their files which are stored remotely, for example, in a public or private computing “cloud.” Here a computing cloud refers to computing resources, including software, which are delivered typically as a service over a network such as the Internet. The files are remotely stored on one or more server computing systems in, for example, a network file system or other network storage, and are accessible via a network, for example, a wide area network (WAN) such as the Internet, a private WAN, or a local area network (LAN). Client devices may include devices such as personal computers, tablets, laptop computers, smart phones, and other mobile devices, some of which have limited resource capacities.
Remote access to files, especially over a WAN, may be subject to bandwidth problems (such as too much data transferred over slow connections) which may lead to latency problems and ultimately an ineffective and frustrating user experience. These problems can be especially frustrating when there are small incremental changes to a file that still result in the entire file being transferred back and forth between one or more client devices and one or more server computing systems. For example, a typical enterprise user may make many modifications to the same spreadsheet file, presentation, or document in a single day, which the user wishes to share with another user for collaborative purposes. The modified file may be thus transferred back and forth several times in a single day.
Accordingly, the ability to provide efficient data transfer can make or break the user experience and can additionally translate into cost savings for limited resource client platforms, such as mobile users, that subscribe to usage based data plans.